<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of CompraRepository
 *
 * @author felipe
 */
class App_Model_CompraRepository {
    public function listarTodos(array $arParametro){
        $arDbCompra = App_Model_Db_Compra::build()->listarTodos(new Voitech_TO($arParametro));
        if(empty($arDbCompra)){
            return $arDbCompra;
        }
        $arCompra = array();
        foreach($arDbCompra as $rowCompra){
            $obCompraMapper = new App_Model_CompraMapper(new App_Model_Compra());
            $arCompra[] = $obCompraMapper->carregar($rowCompra)->getObModel();
        }
        return $arCompra;
    }
    
    public function listarRelatorioProduto(array $arParametro){
        $arDbCompra = App_Model_Db_Compra::build()->listarRelatorioCompra(new Voitech_TO($arParametro));
        if(empty($arDbCompra)){
            return $arDbCompra;
        }
        $arRelatorio = array();
        foreach($arDbCompra as $rowCompra){            
            $obProduto = new App_Model_Produto($rowCompra->co_produto);
            $obProduto->setNoProduto($rowCompra->no_produto);  
            $obCategoria = new App_Model_Categoria($rowCompra->co_categoria);
            $obCategoria->setNoCategoria($rowCompra->no_categoria);
            $obProduto->setObCategoria($obCategoria);                      
            $arRelatorio[] = new App_Model_RelatorioProduto($obProduto,$rowCompra->nu_total_produto,$rowCompra->nu_total_unitario);
        }
        return $arRelatorio;
    }

    
    public function listarRelatorioTipoProduto(array $arParametro){
        $arDbCompra = App_Model_Db_Compra::build()->listarRelatorioTipoProdutoCompra(new Voitech_TO($arParametro));
        if(empty($arDbCompra)){
            return $arDbCompra;
        }
        $arRelatorio = array();
        foreach($arDbCompra as $rowCompra){            
            $obProduto = new App_Model_Produto($rowCompra->co_produto);
            $obProduto->setNoProduto($rowCompra->no_produto);  
            $obProduto->setDtCadastro($rowCompra->dt_cadastro); 
            $obCategoria = new App_Model_Categoria($rowCompra->co_categoria);
            $obCategoria->setNoCategoria($rowCompra->no_categoria);
            $obProduto->setObCategoria($obCategoria);  
            $obTipoProduto = new App_Model_TipoProduto($rowCompra->co_tipo_produto);
            $obTipoProduto->setNoTipoProduto($rowCompra->no_tipo_produto);
            $obProduto->setObTipoProduto($obTipoProduto);                                   
            $arRelatorio[] = new App_Model_RelatorioProduto($obProduto,$rowCompra->nu_quantidade_produto,$rowCompra->nu_quantidade_produto);
        }
        return $arRelatorio;
    } 

    public function listarRelatorioFornecedorProduto(array $arParametro){
        $arDbCompra = App_Model_Db_Compra::build()->listarRelatorioFornecedorProdutoCompra(new Voitech_TO($arParametro));
        if(empty($arDbCompra)){
            return $arDbCompra;
        }
        $arRelatorio = array();
        foreach($arDbCompra as $rowCompra){            
            $obProduto = new App_Model_Produto($rowCompra->co_produto);
            $obProduto->setNoProduto($rowCompra->no_produto);  
            $obProduto->setDtCadastro($rowCompra->dt_cadastro); 
            $obFornecedor = new App_Model_Fornecedor($rowCompra->co_fornecedor);
            $obFornecedor->setNoFornecedor($rowCompra->no_fornecedor);
            $obProduto->setObFornecedor($obFornecedor);              
            $obCategoria = new App_Model_Categoria($rowCompra->co_categoria);
            $obCategoria->setNoCategoria($rowCompra->no_categoria);
            $obProduto->setObCategoria($obCategoria);  
            $obTipoProduto = new App_Model_TipoProduto($rowCompra->co_tipo_produto);
            $obTipoProduto->setNoTipoProduto($rowCompra->no_tipo_produto);
            $obProduto->setObTipoProduto($obTipoProduto);                                   
            $arRelatorio[] = new App_Model_RelatorioProduto($obProduto,$rowCompra->nu_quantidade_produto,$rowCompra->nu_quantidade_produto);
        }
        return $arRelatorio;
    }    
}